The Agile Approach in an Undergraduate Software Engineering Course Project

نویسنده

  • Thomas Reichlmayr
چکیده

1 Thomas Reichlmayr, Software Engineering Department, Rochester Institute of Technology, Rochester, NY 14623, [email protected] Abstract The rise in popularity of agile software development methodologies such as Extreme Programming (XP), Crystal, DSDM and Feature-Driven Development has opened an opportunity for the software engineering education community. How can one capitalize on the strengths of agile development models while still appealing to established software engineering practices? The typical introductory software engineering course makes use of a team-based project to reinforce software process activities. The project normally runs for one academic term during which students are led through life-cycle activities using a modified waterfall approach to software development. While useful in teaching software engineering process concepts, this approach limits the team’s ability to utilize feedback from downstream process activities. It also limits the students’ opportunity to understand process improvement from their own experiences. The ability to respond to project change is also dampened by the fact that teams do not have the time or resources in this format to modify, or refactor the design of a project component let alone incorporate a new or modified customer requirement. Agile methodologies promote an evolutionary approach to development using short incremental release cycles. We report on the experiences of conducting a team project in an introductory software engineering course using agile development techniques at the Rochester Institute of Technology. Teams have the opportunity to experience multiple iterations of the software engineering life cycle and evolve a product design that allows for discoveries made during implementation and through the introduction of changing customer requirements. The project integrates the concept of testdriven development. This agile technique addresses testing early in the development process and reinforces the value of unit testing. The incorporation of agile techniques is not only useful for students in an introductory course, but may also be applied to upper division software engineering courses.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Incorporation of Agile Development Methodology into a Capstone Software Engineering Project

This paper describes the author's experience in transitioning an undergraduate capstone software engineering project course from a traditional "waterfall" format to a modern agile development methodology. The agile approach replaces the sequential, and documentation-intensive, product development steps of the waterfall model--requirements analysis, system design, implementation, testing, and de...

متن کامل

Bridging the Academia-Industry Gap in Software Engineering: A Client-Oriented Open Source Software Projects Course

Too often, computer science programs offer a software engineering course that emphasizes concepts, principles, and practical techniques, but fails to engage students in real-world software experiences. The authors have developed an approach to teaching undergraduate software engineering courses that integrates client-oriented project development and open source development practice. They call t...

متن کامل

Teaching Agile Software Engineering Using Problem-Based Learning

Many studies have reported the utilization of Problem-Based Learning (PBL) in teaching Software Engineering courses. However, these studies have different views of the effectiveness of PBL. This paper presents the design of an Advanced Software Engineering course for undergraduate Software Engineering students that uses PBL to teach them Agile software development methodsparticularly Scrum. The...

متن کامل

An Empirical Analysis of Task Allocation in Scrum-based Agile Programming

Agile Software Development (ASD) methodology has become widely used in the industry. Understanding the challenges facing software engineering students is important to designing effective training methods to equip students with proper skills required for effectively using the ASD techniques. Existing empirical research mostly focused on eXtreme Programming (XP)based ASD methodologies. There is a...

متن کامل

A Case Study On Teaching Agile Software Development Methods

This paper presents and discusses some interesting findings from teaching Agile methods and modelling in a typical university at an undergraduate level software engineering course. The students who took part in this study had been exposed to a few hour lectures on Agile methods and other traditional methods like the RUP (rational unified process). A simple modelling questionnaire was presented ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003